﻿import cgi
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.api import users
from Entities import *
#---------------------------
# Entities NganhNgheNguoiDung
#---------------------------
def GetNganhNgheID(keyNguoiDung = None,NganhNgheID=0):
    nnNd_list = []
    results = NganhNghe_NguoiDung.all()
    if keyNguoiDung !=None:
        try:
            nguoidung = NguoiDung.get(db.Key(keyNguoiDung)) 
        except:
            return "Invalid Key"	
    results.filter('NguoiDung',nguoidung)
    if NganhNgheID > 0:
            nganhnghe = NganhNghe.get_by_id(NganhNgheID)
            results = results.filter("NganhNgheID", nganhnghe)
      
    for nnNd in results:		
        nnNd_list.append(nnNd.NganhNgheID.key())
    return nnNd_list

def Get(keyNguoiDung = None, NganhNgheID = 0):
    nnNd_list = []
    results = NganhNghe_NguoiDung.all()
    if keyNguoiDung !=None:
        try:
            nguoidung = NguoiDung.get(db.Key(keyNguoiDung)) 
        except:
            return "Invalid Key"	
    results.filter('NguoiDung',nguoidung)
    if NganhNgheID > 0:
            nganhnghe = NganhNghe.get_by_id(NganhNgheID)
            results = results.filter("NganhNgheID", nganhnghe)
      
    for nnNd in results:
        nnND_dict = {}
        nnND_dict['ID'] = nnNd.key().id()
        nnND_dict['NganhNghe'] = nnNd.NganhNgheID.TenNganhNghe
        nnND_dict['NguoiDung'] = nnNd.NguoiDung.TenNguoiDung
        nnNd_list.append(nnND_dict)
    return nnNd_list        
    
def Add(keyNguoiDung,NganhNgheID):
    try:
        nguoidung = NguoiDung.get(db.Key(keyNguoiDung)) 
    except:
        return "Invalid Key"
    nganhnghe = NganhNghe.get_by_id(int(NganhNgheID))
    if nganhnghe != None : 
        nnNd_check = NganhNghe_NguoiDung.all().filter("NganhNgheID", nganhnghe).filter("NguoiDung", nguoidung)
        if nnNd_check.count() == 0:   
            nnNd = NganhNghe_NguoiDung(NguoiDung= nguoidung,NganhNgheID = nganhnghe)
            nnNd.put()         
            return "Complete"
        else:
           return "Duplicate"
    else:
        return "Error"

def Update(keyNguoiDung,ListNganhNghe):
    if keyNguoiDung !=None:
        try:
            nguoidung = NguoiDung.get(db.Key(keyNguoiDung)) 
        except:
            return "Invalid Key"
    try:
        Delete(keyNguoiDung)
    except:
        return "Error"
    for NganhNgheID in ListNganhNghe:
        nganhnghe = NganhNghe.get_by_id(NganhNgheID)        
        nnNd = NganhNghe_NguoiDung(NguoiDung=nguoiDung, NganhNgheID = nganhnghe)       
        nnNd.put()
    return "Complete"

        
        
def Delete(keyNguoiDung,NganhNgheID=0):
    if keyNguoiDung !=None:
        try:
            nguoidung = NguoiDung.get(db.Key(keyNguoiDung)) 
        except:
            return "Invalid Key"	
    results = NganhNghe_NguoiDung.all().filter("NguoiDung",nguoidung)
    if int(NganhNgheID) > 0 :
        nganhnghe = NganhNghe.get_by_id(int(NganhNgheID))
        results = results.filter("NganhNgheID", nganhnghe)
    for nnNd in results :
        NganhNghe_NguoiDung.delete(nnNd)  
    return "Complete"
       